package com.klangner.math.parser.javacc.impl;

import com.klangner.math.ast.Node;

/**
 * Klasa ta buduje drzewo na podstawie kolejnosci podawanych węzłów.
 * Normalnie parser zamieni wyrażenie:
 * 2-3+4
 * na
 * 2-(3+4)
 * Ta klasa ma zadbać by wyrażenie było budowane w kolejności od lewej do prawej.
 * 
 * @author Krzysztof Langner
 *
 */
public class NodeBuilder {

	private Node root;
	
	/**
	 * constructor
	 * @param node
	 */
	public NodeBuilder(Node node){
	
		root = node;
	}
	
	/**
	 * Add operator and value node
	 * @param node
	 */
	public void addNode(Node opNode, Node valueNode){
		opNode.setFirstChild(root);
		opNode.setSecondChild(valueNode);
		
		root = opNode;
	}

	/**
	 * Return root node
	 * @return
	 */
	public Node getRootNode(){
		return root;
	}
}
